<?php
/**
 * 直播间音乐
 *
 * @author: dogstar <chanzonghuang@gmail.com> 2014-10-04
 */

class Api_Livemusic extends PhalApi_Api
{
	
	public function getRules()
	{
		return array(
			'searchMusic' => array(
				'key' => array('name' => 'key', 'type' => 'string', 'require' => true, 'desc' => '关键词'),
				'p'   => array('name' => 'p', 'type' => 'int', 'min' => 1, 'default' => 1, 'desc' => '页数'),
			),
			'getDownurl'  => array(
				'audio_id' => array('name' => 'audio_id', 'type' => 'string', 'require' => true, 'desc' => '歌曲ID'),
			),
		);
	}
	
	/**
	 * 歌曲查询
	 * @desc 用于直播间主播搜索歌曲
	 * @return int code 操作码，0表示成功
	 * @return array info
	 * @return string info[].audio_id 歌曲ID
	 * @return string info[].audio_name 歌曲名称
	 * @return string info[].artist_name 歌手
	 * @return string msg 提示信息
	 */
	public function searchMusic()
	{
		require API_ROOT.'/../sdk/Meting/Meting.php';
		
		$keyword = checkNull($this->key);
		// Get data
		$api  = new Metowolf\Meting('kugou');
		$data = $api->format(true)->search($keyword, ['page' => 1, 'limit' => 50]);
		$req  = json_decode($data, 1);
		$list = array();
		foreach($req as $k => $v){
			$song = array(
				'audio_id'    => $v['id'],
				'audio_name'  => preg_replace('/\\\|\\/|:|\*|\?|"|<|>|\|/', ' ', $v['name']),
				'artist_name' => implode(',', preg_replace('/\\\|\\/|:|\*|\?|"|<|>|\|/', ' ', $v['artist'])),
				//'api_type'=>0, //http://tingapi.ting.baidu.com
				//'audio_link'  => '',
				//'lrc_link'    => '',
				//'time_len'    => '',
			);
			// 整理
			$list[] = $song;
		}
		
		return $this->success($list);
	}
	
	/**
	 * 歌曲信息
	 * @desc 用于获取歌曲详细信息
	 * @return int code 操作码，0表示成功
	 * @return array info
	 * @return string info[0].audio_link 歌曲下载链接
	 * @return string info[0].audio_ext 文件后缀
	 * @return string info[0].time_len 时长
	 * @return string info[0].audio_size 大小
	 * @return string info[0].lrc_title 歌词名
	 * @return string info[0].lrc_content 歌词
	 * @return string msg 提示信息
	 */
	public function getDownurl()
	{
		require API_ROOT.'/../sdk/Meting/Meting.php';
		
		$_id  = checkNull($this->audio_id);
		$api  = new Metowolf\Meting('kugou');
		$link = @$api->format(true)->url($_id); // 内部报错，所以用@
		$link = json_decode($link, 1);
		if(!$link['url']){
			return $this->fail('无法下载该音乐', 1001);
		}
		
		//====================获得歌词===================
		$lrc_content = $api->format(true)->lyric($_id);
		$lrc_content = json_decode($lrc_content, 1);
		// 整理
		$audio = array('audio_link' => $link['url'], 'audio_ext' => '', 'audio_size' => '', 'time_len' => '', 'lrc_title' => '', 'lrc_content' => $lrc_content['lyric'],);
		
		return $this->success([0 => $audio]);
	}
} 
